package com.ds.common.route.config;

import com.ds.common.nacos.ConfigModel;
import lombok.Data;
import lombok.Getter;

import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * 机构配置
 */
@Data
public class AgentConfigList implements ConfigModel {


    @Getter
    Map<Integer, AgentConfig> agentConfigMap;

    List<AgentConfig> agentConfigList;

    public void setAgentConfigList(List<AgentConfig> agentConfigList) {
        this.agentConfigList = agentConfigList;
        if (agentConfigList != null && agentConfigList.stream().allMatch(AgentConfig::isValid)) {
            agentConfigMap = agentConfigList.stream().collect(Collectors.toMap(AgentConfig::getAgentId, Function.identity()));
        }
    }

    /**
     * 根据agentId获得 AgentConfig
     */
    public AgentConfig getAgentConfig(Integer agentId) {
        return agentConfigMap.get(agentId);
    }

    @Override
    public boolean isValid() {
        return agentConfigList != null && agentConfigList.stream().anyMatch(AgentConfig::isValid);
    }
}
